Linux 文件系統(tǒng)遵循由文件系統(tǒng)層次結(jié)構(gòu)標(biāo)準(zhǔn) (FHS) 管理的樹狀層次結(jié)構(gòu)布局。這是 Linux 基金會維護(hù)的標(biāo)準(zhǔn)。在撰寫本指南時,F(xiàn)HS 的最新版本是 2015 年 6 月發(fā)布的 3.0.3 版。
Linux 文件系統(tǒng)結(jié)構(gòu)從最頂層開始,根目錄是層次結(jié)構(gòu)中的最上層目錄。它包含系統(tǒng)上的所有目錄和子目錄,我們將在本指南后面看到。
為了更好地了解這一點(diǎn),導(dǎo)航到根目錄/并運(yùn)行以下命令:
tree -D -L 1
輸出提供了駐留在系統(tǒng)上的所有主要目錄。在深入研究每個目錄包含的內(nèi)容之前,讓我們簡要了解一下 Linux 系統(tǒng)上的主要文件類型。
Linux 中的文件類型
在 Linux 和 UNIX 系統(tǒng)中,一切都被視為一個文件。如果不是,那么它是一個正在運(yùn)行的過程。通常,Linux 中的所有文件都屬于這三類之一。
- 常規(guī)文件:包括文本文件、照片、視頻、程序和可執(zhí)行文件。
- 目錄:這聽起來可能有點(diǎn)奇怪,但在 Linux 中,目錄也被視為文件,因?yàn)樗鼈優(yōu)槠渌募妥幽夸浱峁┐鎯臻g。
- 特殊文件:這些是包含符號鏈接、塊文件、套接字文件和命名管道文件的設(shè)備文件。
也就是說,現(xiàn)在讓我們更詳細(xì)地檢查 Linux 文件系統(tǒng)樹。
/ ( 根目錄)
如前所述,根目錄由單個正斜杠 ( / ) 表示,是 Linux 層次結(jié)構(gòu)中的最頂層目錄。Linux 系統(tǒng)上的所有文件和文件夾都存儲在這里,并且可以從這個目錄中引用,即使存儲在不同的位置,例如可移動或虛擬設(shè)備。
筆記:
不要將根 (/) 目錄與根主目錄 (/root) 混淆。
/家
該/home目錄是包含用戶個人文件的目錄。該目錄是 Linux 系統(tǒng)上任何登錄用戶的入口點(diǎn)。它存儲特定于單個用戶的文件夾、文件和個人數(shù)據(jù)。
目錄中的文件夾采用登錄用戶名的/home形式。例如,如果我們有一個名為 mike 的登錄用戶,則該用戶的主目錄將為./home/USERNAMEUSERNAME/home/mike
目錄內(nèi)/home/USERNAME還有其他子目錄,例如 Desktop、Downloads、Documents、Pictures、Videos、Templates、Public 和 Music,如下所示。
此外,主目錄包含個性化配置文件,這些文件是隱藏文件,前面有一個點(diǎn)。此類文件包括.bashrc,.bash_logout,等等.bash_profile。
要查看隱藏文件,請使用如圖所示的選項(xiàng)運(yùn)行l(wèi)s命令。-la
ls -la
/根
這是 root 帳戶的主目錄,也稱為 root 用戶的主目錄。該/root目錄存儲 root 帳戶的配置文件的方式與每個普通用戶的主目錄包含該用戶的配置文件和常規(guī)文件的方式相同。
/引導(dǎo)
另一個關(guān)鍵目錄是/boot目錄。顧名思義,該目錄包含成功引導(dǎo)系統(tǒng)所需的基本文件。這些文件包括 grub 引導(dǎo)加載程序文件、根文件系統(tǒng)文件、Linux 內(nèi)核文件 (vmlinuz) 和其他引導(dǎo)配置文件。
/垃圾桶
該/bin目錄包含二進(jìn)制可執(zhí)行文件或 Linux 程序。其中包括在單用戶模式下可供所有用戶使用的常用 Linux 命令。其中包括 cat、chown、chmod、ping、cp、mkdir、ls、cat、rm 和 mv,僅舉幾例。
要確認(rèn)二進(jìn)制可執(zhí)行文件或命令(例如cp命令)的路徑,請運(yùn)行命令:
which cp
/sbin
與/bin?目錄不同,/sbin目錄包含為根用戶保留的二進(jìn)制可執(zhí)行文件和命令行工具。這些是用于系統(tǒng)管理任務(wù)的特權(quán)命令。此類命令的示例包括 fdisk、route、reboot、mkfs、init 和 fsck 等等。同樣,要確認(rèn)二進(jìn)制可執(zhí)行文件的路徑,請運(yùn)行which命令,然后運(yùn)行二進(jìn)制可執(zhí)行文件。
which reboot
/開發(fā)
該/dev目錄包含代表連接到系統(tǒng)的設(shè)備的特殊文件。這些包括控制臺、硬盤驅(qū)動器或插入系統(tǒng)的任何其他外圍設(shè)備。設(shè)備文件的一個很好的例子是/dev/sda它表示連接到 Linux 系統(tǒng)的第一個 SATA 硬盤驅(qū)動器。
該/dev目錄也是不引用任何連接到系統(tǒng)的硬件的偽設(shè)備或虛擬設(shè)備的存儲位置。一個示例是/dev/null丟棄發(fā)送給它的任何數(shù)據(jù)的文件。
/ETC
該/etc目錄包含特定于主機(jī)的系統(tǒng)范圍配置文件。它存儲所有程序所需的配置文件以及啟動和關(guān)閉 shell 腳本。root 或 sudo 用戶可以使用 nano 或 vim 等文本編輯器修改配置文件,sudo 用戶是具有運(yùn)行某些 root 命令的提升權(quán)限的普通用戶。
/lib,/lib64
/bin/lib 目錄包含或目錄中所需的共享庫圖像/sbin。這些是系統(tǒng)正常啟動和運(yùn)行所需的基本庫。
/媒體
該/media目錄包含臨時子目錄,可移動媒體(如光盤驅(qū)動器)會自動安裝在這些目錄上。子目錄的一個很好的例子是/media/cdrom光驅(qū)。
/mnt
該/mnt目錄提供了一個臨時掛載點(diǎn),可在其上掛載可移動媒體(如 CDROM)。它最常用于手動掛載存儲設(shè)備或分區(qū),更像是過去的遺物。
/tmp
在 Linux 系統(tǒng)上,臨時文件存儲在該/tmp?目錄中。這些是由系統(tǒng)和用戶創(chuàng)建的臨時文件。此目錄中的文件通常有幾千字節(jié)大小,并且在大多數(shù)情況下會在系統(tǒng)重新啟動時被刪除。
/選擇
該/opt目錄包含第三方供應(yīng)商提供的附加應(yīng)用程序或軟件包,它們不是通過您的操作系統(tǒng)包管理器安裝的。每個這樣的應(yīng)用程序都有自己的子目錄,其中包含它運(yùn)行所需的所有基本文件。當(dāng)您從第三方存儲庫安裝軟件包或自行編譯軟件二進(jìn)制文件時,文件將存儲在該/opt目錄中。
/曾是
Var 代表變量。顧名思義,該?/var目錄是一個包含大小不斷變化的文件的目錄,例如日志和假脫機(jī)文件。
以下是該目錄中包含的重要/var?目錄的列表:
- /var/log?- 包含系統(tǒng)和應(yīng)用程序日志文件。
- /var/cache?- 包含來自程序的緩存數(shù)據(jù)。
- /var/mail?- 包含用戶的郵箱
- /var/spool- 包括各種程序的排隊(duì)或假脫機(jī)文件。
- /var/spool/cron- 包含用于 cron 作業(yè)的假脫機(jī)文件。
- /var/spool/at- 包含 at 的假脫機(jī)作業(yè)。
- /var/spool/lpd- 包含用于打印的假脫機(jī)文件。
- /var/opt- 包含/opt目錄的可變數(shù)據(jù)文件。
/跑
大多數(shù) Linux 發(fā)行版都帶有/run文件系統(tǒng)。這是一個目錄,用于存儲自系統(tǒng)啟動以來易失性運(yùn)行時數(shù)據(jù)。存儲在此目錄中的數(shù)據(jù)不會在重新啟動后保留。
/進(jìn)程
也稱為 proc 文件系統(tǒng),該/proc目錄是一個虛擬或偽文件系統(tǒng),其中包含提供有關(guān)正在運(yùn)行的進(jìn)程和內(nèi)核當(dāng)前狀態(tài)的信息的特殊文件。它被視為Linux內(nèi)核的信息和控制中心。
proc 目錄是一個特殊的目錄,因?yàn)樗皇钦嬲奈募到y(tǒng),一旦系統(tǒng)斷電,它就不存在了。它/proc在引導(dǎo)過程中安裝在安裝點(diǎn)。
/usr
這是 Linux 系統(tǒng)中最關(guān)鍵的目錄之一。該/usr目錄是包含已安裝軟件應(yīng)用程序的庫、二進(jìn)制文件和文檔的目錄。此目錄中包含的系統(tǒng)文件可在其他用戶之間共享。
一目了然,以下是該目錄中包含的一些重要子目錄/usr:
- /usr/bin- 這包含在目錄下找不到的用戶程序的二進(jìn)制文件/bin。此類程序的示例包括 less、more、scp 和 awk 等等。
- /usr/sbin?- 這為系統(tǒng)管理員或特權(quán)用戶提供了二進(jìn)制文件。通常,系統(tǒng)二進(jìn)制文件位于該/sbin目錄中,但如果您在那里找不到它們,請?jiān)谠?sbin目錄下查找。
- /usr/local- 該目錄包含從源代碼或發(fā)行版提供的軟件之外安裝的用戶程序。例如,當(dāng)您從源代碼安裝 Go 編程語言時,它位于該/usr/local/go目錄下。
- /usr/lib- 這提供了/usr/bin和/usr/sbin目錄所需的庫。
- /usr/src- 這包含 Linux 頭文件、內(nèi)核源代碼和文檔。
/srv(服務(wù)目錄)
術(shù)語 srv 代表服務(wù)。該/srv目錄包含 Linux 發(fā)行版的站點(diǎn)特定數(shù)據(jù)。它指向特定服務(wù)(如 www、rsync、FTP 和 CVS)的數(shù)據(jù)文件的位置。
/系統(tǒng)
這是一個虛擬或偽文件系統(tǒng),包含一組附加到 Linux 內(nèi)核的虛擬文件。
/折斷
這是快照包進(jìn)入的地方。Snap 是由 Ubuntu 的發(fā)布者和維護(hù)者 Canonical 開發(fā)的包管理系統(tǒng)。Snaps 是容器化的、交叉分發(fā)的軟件包,與所有依賴項(xiàng)一起打包。它們易于安裝,適用于所有啟用了快照的主要 Linux 發(fā)行版。
如果您從 snap 包安裝了應(yīng)用程序,那么所有軟件文件都將在該/snap目錄中找到。
/丟失+找到
這是一個主要在 Ubuntu 和基于 Ubuntu 的發(fā)行版中找到的目錄。這是一個包含過時數(shù)據(jù)的特殊目錄。這些是在磁盤操作期間已被刪除或丟失的文件片段。
結(jié)論
在本指南中,我們檢查了 Linux 文件系統(tǒng)樹并充實(shí)了構(gòu)成文件系統(tǒng)層次結(jié)構(gòu)的目錄。Linux 文件文件系統(tǒng)層次結(jié)構(gòu)確保了各種 Linux 系統(tǒng)之間的一致性,并為 Linux 管理員和開發(fā)人員提供了一個標(biāo)準(zhǔn)的目錄結(jié)構(gòu),使管理系統(tǒng)變得容易。